package com.power.powercash;

/**
 *
 * @author f6036477
 */
public class ConsultaCheque extends ConsultaPagamento
{

  private Cheque cheque;

  private boolean empty;


  public ConsultaCheque()
  {
    super();
    cheque = null;
    empty = false;
  }


  public ConsultaCheque(Cheque c)
  {
    this();
    this.setCheque(c);
    empty = false;
  }


  public Cheque getCheque()
  {
    return cheque;
  }


  public void setCheque(Cheque cheque)
  {
    super.setPagamento(cheque);
    this.cheque = cheque;
  }


  public void setEmptyQuery(boolean emptyQuery)
  {
    empty = emptyQuery;
  }


  public boolean isEmptyQuery()
  {
    return empty;
  }


  public boolean match(Cheque c)
  {
    if(c != null && empty)
      return true;

    boolean pagto = super.match(c);

    if(!pagto) return false;

    boolean nr = false, fin = false, nominal = false, nonull = false;

    if(cheque.getNumero() > 0
        && c.getNumero() > 0
        && cheque.getNumero() == c.getNumero()) {
      nr = true;
      nonull = true;
    } else if(cheque.getNumero() <= 0)
      nr = true;

    if(cheque.getFinalidade() != null
        && c.getFinalidade() != null) {
      fin = cheque.getFinalidade().equals(c.getFinalidade());
      nonull = true;
    } else if(cheque.getNumero() <= 0)
      fin = true;

    if(cheque.getNominal() != null
        && c.getNominal() != null
        && cheque.getNominal().equals(c.getNominal())) {
      nominal = true;
      nonull = true;
    } else if(cheque.getNominal() == null)
      nominal = true;

    return nr && fin && nominal && nonull;
  }


  @Override
  public boolean match(Pagamento p)
  {
    if(!(p instanceof Cheque))
      return super.match(p);

    return this.match((Cheque) p);
  }

}
